Generally described, computing devices and communication networks can be utilized to exchange information. In a common application, a computing device can request content items, such as web pages, from another computing device via the communication network. For example, a user at a client computing device can utilize a software browser application, typically referred to as a “web browser,” to request a web page from a server computing device via the Internet.
Many network-transmitted content items, such as web pages, are formatted according to a human-readable markup language format (e.g., the hypertext markup language, or “HTML”). These documents define a collection of objects, such as text, images, videos, applications, or other data, that is organized into a hierarchical structure. In order to display such content items, a browser executing on a client computing device must generally parse the content item to identify these objects and build a binary representation of the hierarchical structure, which is sometimes referred to as a parse tree. Where content items are described according to the Document Object Model (DOM) (a common convention for representing markup language documents), this parse tree is often referred to as a “DOM tree.” The browser can then combine the parse tree with other information, such as styling and layout information, to build a representation of the content item for display to a user.
In many content items, and especially in large or complex content items, generation of the parse tree represents a significant portion of the total time required by a computing device to display the content item. From the perspective of a user utilizing a client computing device, a user experience can be defined in terms of the performance and latencies associated with displaying a content item. Thus, inefficiencies and delays in generating a parse tree for a content item serve to diminish the user experience. Such inefficiencies and delays may be especially apparent on computing devices with limited computing resources, such as processing power, memory, network connectivity, or battery power, and may actually increase the amount of computing resources (e.g., battery power) used by the computing device to display a content item.